package com.team9.fitness.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 饮食记录实体类
 * 
 * 存储用户的饮食记录和营养分析信息：
 * - 基本信息：用户ID、食物ID、食用量、用餐时间
 * - 营养数据：卡路里、蛋白质、脂肪、碳水化合物
 * - 餐次管理：早餐、午餐、晚餐、加餐分类
 * - 食物信息：关联食物数据库，显示食物名称
 * 
 * 营养计算：
 * - 根据食物营养成分和食用量自动计算
 * - 支持多种营养素的精确计算
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class DietRecord {
    private Long id;
    private Long userId; // 用户ID
    private Long foodId; // 食物ID
    private Double amount; // 食用量(克)
    private Double totalCalories; // 总热量(千卡)
    private Double totalCarbohydrates; // 总碳水化合物(克)
    private Double totalProtein; // 总蛋白质(克)
    private Double totalFat; // 总脂肪(克)
    private LocalDateTime mealTime; // 用餐时间
    private String mealType; // 餐次类型(早餐/午餐/晚餐/加餐)
    private String foodName; // 食物名称（用于显示）
    private LocalDateTime createdAt;

    public void setCreatedAtIfNull() {
        if (this.createdAt == null) {
            this.createdAt = LocalDateTime.now();
        }
    }
}
